#!/usr/bin/python3
# _*_ coding: utf-8 _*_
#
# Copyright (C) 2024 - 2024 heihieyouheihei, Inc. All Rights Reserved 
#
# @Time    : 2024/8/16 21:18
# @Author  : Yuyun
# @File    : 最多符合要求的参赛团队.py
# @IDE     : PyCharm


"""
题目描述：
用数组代表每个人的能力，一个比赛活动要求参赛团队的最低能力值为N，每个团队可以由1人或2人组成，且1个人只能参加1个团队，请计算出最多可以派出多少支符合要求的团队？
输入描述：
5
3 1 5 7 9
8
第一行数组代表总人数，范围[1，500000]
第二行数组代表每个人的能力，每个元素的取值范围[1，500000]，数组的大小范围[1.500000]
第三行数值为团队要求的最低能力值，范围[1，500000]
输出描述：
3
最多可以派出的团队数量
补充说明：
3.5组成一队，1.7组成一队，9自己一个队，故输出3

"""



# def max_group_number(every_potential,min_group_potential):
#     every_potential.sort(reverse=True)      #能力降序排列
#     count = 0
#     # 单人组队
#     for potential in every_potential:
#         if potential >= min_group_potential:
#             count  += 1
#             every_potential.remove(potential)
#     #双人组队
#     start = 0
#     end = len(every_potential) - 1
#     while start < end:     #从剩余列表两端，向中间查找
#         sum_potential = every_potential[start] + every_potential[end]
#         if sum_potential >= min_group_potential:        #可以组队，两边向中间移动
#             count += 1
#             start += 1
#             end -= 1
#         else:       #无法组队，则移动能力最弱者指针
#             end -= 1
#     return count

#优化后的函数
def max_group_number(every_potential, min_group_potential):
    every_potential.sort()  # 仅升序排列
    count = 0
    n = len(every_potential)
    # 单人组队
    i = n - 1
    while i >= 0 and every_potential[i] >= min_group_potential:
        count += 1
        i -= 1
    # 双人组队
    start = 0
    end = i
    while start < end:
        if every_potential[start] + every_potential[end] >= min_group_potential:
            count += 1
            end -= 1
            start += 1
        else:
            start += 1
    return count

try:
    total = int(input())
    every_potential = list(map(int, input().split()))
    min_group_potential = int(input())
    if total != len(every_potential):
        raise ValueError("输入人数与能力数量不符")
    else:
        group_number = max_group_number(every_potential, min_group_potential)
        print(group_number)
except ValueError as e:
    print(e)